<?php
declare(strict_types=1);

namespace app\common\traits;

use think\response\Json;

/**
 * 数据相应Trait类
 */
trait ResponseTrait
{

    /**
     * @notes json数据
     * @param int|null $status
     * @param string $msg
     * @param array $data
     * @return Json
     * @author mjf
     * @date 2022/4/13 16:16
     */
    protected function result(int $status = null, string $msg = '', array $data = []): Json
    {
        return json(compact('status', 'msg', 'data'));
    }


    /**
     * @notes 返回成功
     * @param $data
     * @param string $message
     * @return Json
     * @author mjf
     * @date 2022/4/13 16:18
     */
    protected function success($data, string $message = 'success'): Json
    {
        if (is_string($data)) {
            $message = $data;
            $data = [];
        }
        return $this->result(config('status.success'), $message, $data);
    }


    /**
     * @notes 返回失败
     * @param string $message
     * @param array $data
     * @return Json
     * @author mjf
     * @date 2022/4/2 15:23
     */
    protected function fail(string $message = 'error', array $data = []): Json
    {
        return $this->result(config('status.error'), $message, $data);
    }

}